package com.shujia.base.day01

import java.io.{BufferedWriter, FileWriter}

/**
 *  scala中的异常处理，和java的异常处理很像
 *
 *  try{
 *
 *  }catch{
 *
 * }finally{
 *
 * }
 *
 * 今后我们处理异常，一般都是处理明确的异常，且可以自己自定义异常的提示内容
 */
object Demo3Exception {
  def main(args: Array[String]): Unit = {
    try {
      val arr1: Array[String] = Array("hello", "world", "java", "hadoop")
      println(arr1(2))

      var a1 = 3
      var b1 = 2
      if(b1==0){
        throw new ArithmeticException("我们的b1的值是0！！！不能作为除数！")
      }else{
        println(a1/b1)
      }

      val bw: BufferedWriter = new BufferedWriter(new FileWriter("scala/data/words2.txt"))

      bw.write("你好，scala!")
      bw.flush()

    }catch{
      case e:ArrayIndexOutOfBoundsException => println("索引越界啦！！")
      case e:ArithmeticException => e.printStackTrace()
      case _ => println("其他错误！") // 这里的下划线，就代表任意异常
    }finally {
      //这里的代码和java一样，无论try中的代码是否出现异常，都会执行
      //一般这里写一些释放资源的代码逻辑
    }


    println("黄涛的小名叫黄焖鸡")


  }

}
